/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.bomt.domain.vo;

import com.alibaba.excel.util.StringUtils;
import com.comac.ins.bomt.domain.BomExtraInfo;
import com.comac.ins.bomt.domain.BomInfo;
import com.comac.ins.bomt.domain.vo.convertor.*;
import com.comac.ins.common.json.utils.JsonUtils;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.util.Date;

/**
 * BomInfoVo
 *
 * @author zhanghongyi
 * @date 2024/8/5 11:19
 * @description BomInfoVo
 */
@Data
@AutoMapper(target = BomInfo.class, uses = {StandardBomSummaryConvertor.class, StrengthBomSummaryConvertor.class, StrengthStandardChangeSummaryConvertor.class, StatusStrengthChangeSummaryConvertor.class})
public class BomInfoVo {
    /**
     * Id
     */
    private Long id;
    /**
     * 名称
     */
    private String name;
    /**
     * 机型
     */
    private String aircraftModel;
    /**
     * 跟踪Id（用于标记产出数据的业务流程Id）
     */
    private String track;
    /**
     * 子跟踪Id（用于标记产出的业务流程步骤）
     */
    private String subTrack;
    /**
     * ATA 100
     */
    private String ata;
    /**
     * 主分组类型
     */
    private String groupType;
    /**
     * 子分组类型
     */
    private String subGroupType;
    /**
     * 状态
     */
    private String status;
    /**
     * 业务步骤
     */
    private String bizStep;
    /**
     * 标准装机清单摘要
     */
    private SummaryStandardBomVo standardBomSummary;
    /**
     * 标准装机清单文件Id
     */
    private Long standardBomFileId;
    /**
     * 强度数模清单摘要
     */
    private SummaryStrengthBomVo strengthBomSummary;
    /**
     * 强度数模清单文件Id
     */
    private Long strengthBomFileId;
    /**
     * 模型状态清单摘要
     */
    private String modelStatusBomSummary;
    /**
     * 模型状态清单文件Id
     */
    private Long modelStatusBomFileId;
    /**
     * 强度数模清单Vs标准装机清单摘要
     */
    private SummaryStrengthStandardChangeVo strengthVsStandardSummary;
    /**
     * 强度数模清单Vs标准装机清单文件Id
     */
    private Long strengthVsStandardFileId;
    /**
     * 模型状态清单Vs强度数模清单摘要
     */
    private SummaryStatusStrengthChangeVo statusVsStrengthSummary;
    /**
     * 模型状态清单Vs强度数模清单文件Id
     */
    private Long statusVsStrengthFileId;
    /**
     * 附加信息
     */
    private String extraInfo;

    /**
     * 模型状态清单描述
     */
    private String modelStatusDesc;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 创建人
     */
    private Long createBy;
    /**
     * 创建人部门
     */
    private Long createDept;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 更新人部门
     */
    private Long updateBy;

    public void fillModelStatusDesc(){
        if (StringUtils.isBlank(extraInfo)) {
            return;
        }
        BomExtraInfo obj = JsonUtils.parseObject(extraInfo, BomExtraInfo.class);
        modelStatusDesc = obj== null? null :obj.getModelStatusDesc();
    }
}
